import StringUtils from './StringUtils';

/**
 * 提供对sessionStorage和localStorage存取Object的操作.
 * 如果存取string,直接用原生api即可.
 *
 */
export default class StorageUtils {
    /**
     * 注意value是对象,不是字符串.
     * @param key string
     * @param valueObj object
     */
    static setSessionItem(key, valueObj) {
        if(valueObj != null) {
            sessionStorage.setItem(key, JSON.stringify(valueObj));
        }else{
            sessionStorage.setItem(key, null);
        }
    }
    /**
     *
     * @param {*} key 根据key,获取session中存放的对象
     */
    static getSessionItem(key) {
        return JSON.parse(sessionStorage.getItem(key));
    }

    static setLocalItem(key, valueObj) {
        if(valueObj != null) {
            localStorage.setItem(key, JSON.stringify(valueObj));
        }else{
            localStorage.setItem(key, null);

        }
    }

    static getLocalItem(key) {
        return JSON.parse(localStorage.getItem(key));
    }
    /**
     * 获取存放在sessionStorage中session的session_id.
     * 当session_id不存在时,则返回''字符串.
     */
    static getSessionId():string{
        let localSession = StorageUtils.getSessionItem('session') || {};
        let sessionId = StringUtils.isNotBlank(localSession.session_id) ? localSession.session_id : '';
        return sessionId;
    }
}

